FivetranのAmazon S3のConnectorをIAMロールで接続してみた #Fivetran
こんにちは、スズです。
FivetranにはAmazon S3のConnectorがあります。Amazon S3へのアクセス方法として以下の中から選択できます。
- IAM Role
- Access Key and Secret
- Public Bucket
各オプションを使ったアクセスについては、セットアップガイドに手順が記載されています。
本記事ではIAMロールを使ったアクセス方法についてご紹介いたします。
事前準備
データの同期先となるDestinationとして今回はSnowflakeを使用します。SnowflakeをDestinationに設定する方法は、以下のブログにてご紹介しております。
また、AWSでのIAMロールの準備は後述の手順の中でご紹介しますが、接続先となるAmazon S3のバケットはあからじめ用意しております。バケットの中にはFivetranというフォルダがあり、そのフォルダの中に2つのCSVファイルを用意しています。
Amazon S3のConnectorのセットアップ
FivetranでConnectorを追加
ConnectorにAmazon S3を追加していきます。Fivetranの[Connectors]の画面から、[Add connector]をクリックします。
Destinationを選択します。今回はSnowflakeにデータを同期しますので、あらかじめ用意していたSnowflakeのDestinationを選択します。
Connectorに[Amazon S3]を選択します。
データの出力先となるDestination schemaやDestination tableと、Amazon S3に接続するためBucketなど設定します。Access approachは、今回はIAM Roleを使用します。
IAMロールで接続するために、AWS側でIAMロールの作成を行います。
AWSでのIAMロールの作成
ポリシーの作成
まずはIAMポリシーを作成します。AWSのIAMの[ポリシー]の画面を開き、[ポリシーの作成]をクリックします。
アクセス許可を指定の画面では[JSON]を選択します。ポリシーの定義はセットアップガイドに以下の記載がありますので、セットアップガイドからコピーして貼り付けます。{your-bucket-name}
の部分はFivetranで接続するAmazon S3のバケットの名前に置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::{your-bucket-name}/*", "arn:aws:s3:::{your-bucket-name}" ] } ] }
設定後、画面下の方にある[次へ]をクリックして先に進みます。
ポリシー名を設定します。
必要に応じてタグを設定し、[ポリシーの作成]をクリックします。これでIAMポリシーを作成できました。
ロールの作成
続いてIAMロールを作成します。[ロール]の画面を開き、[ロールを作成]をクリックします。
信頼されたエンティティタイプは[AWSアカウント]を選択します。
AWSアカウントでは[別のAWSアカウント]を選択し、セットアップガイドに記載のあるFivetranのアカウントID834469178297
を入力します。また、[外部IDを要求する]にチェックを入れます。入力する外部IDは、FivetranのConnectorのセットアップの画面に表示されたExternal IDを入力します。設定後、[次へ]をクリックします。
許可ポリシーとして先ほど作成したIAMポリシーを選択し、[次へ]をクリックします。
ロール名を設定します。
必要に応じてタグを設定し、[ロールを作成]をクリックします。これでIAMロールを作成できました。
ARNの取得
作成したIAMロールからARNを取得します。作成したロールをクリックします。
ARNをコピーして取得します。
Fivetranで接続と同期
Fivetranに戻り、Role ARNに先ほど取得したARNを設定します。その他オプションを設定し、[Save & Test]をクリックします。
接続テストに成功が行われます。テストに成功したのち、[Continue]をクリックします。
これで設定は完了です。[Start Initial Sync]をクリックして、初期同期を実行します。
Initial sync comleteと表示されると、初期同期は完了です。
DestinationのSnowflakeを確認します。Connectorのセットアップで指定した名前でスキーマとテーブルが作成されています。テーブルを確認すると、Fivetranで同期したデータがあります。Amazon S3ではFivetranという名前のフォルダの中にCSVファイルを2つ用意していましたが、同期元のファイルは_FILE
のカラムにある値で確認できます。
最後に
FivetranのAmazon S3のConnectorをIAMロールでの接続についてご紹介しました。